package com.ww.java8.optional;

public class OptionalStream {

	public static void main(String[] args) {
		
	}
	
//	public static Set<String> getCarInsuranceName(List<Person> persons) {
//		return persons.stream()
//				// 将person列表转换为Optional<Car>组成的流
//				.map(Person::getCar)
//				// 对每个Optional<Car>执行flatMap操作，将其转换成对应的Optional<Insurance>对象
//				.map(optCar -> optCar.flatMap(Car::getInsurance))
//				// 将每个Optional<Insurance>映射成包含对应保险公司名称的Optional<String>
//				.map(optIns -> optIns.map(Insurance::getName))
//				// 将Stream<Optional<String>>转换Stream<String>对象，只保留流中那些存在保险公司名的对象
//				.flatMap(Optional::stream)
//				// 收集处理的结果字符串
//				.collect(Collectors.toSet());
//	}
}
